#ifndef SCOUNDREL_H
#define SCOUNDREL_H

#include <QMainWindow>
#include <vector>
#include "Ability.h"
#include <string>

using namespace std;
namespace Ui {
class Scoundrel;
}

class Scoundrel : public QMainWindow
{
    Q_OBJECT
    
public:
    explicit Scoundrel(QWidget *parent = 0);
    ~Scoundrel();
    
private slots:
    void on_levelBox_editingFinished();

    void on_primaryBox_editingFinished();

    void on_powerBox_editingFinished();

    void on_techBox_editingFinished();

    void on_critBox_editingFinished();

    void on_surgeBox_editingFinished();

    void on_alacBox_editingFinished();

    void on_accBox_editingFinished();

    void on_MHmaxBox_editingFinished();

    void on_MHminBox_editingFinished();

    void on_enemyLevelBox_editingFinished();

    void on_enemyArmorBox_editingFinished();

    void on_skillBox_1_editingFinished();

    void on_skillBox_2_editingFinished();

    void on_skillBox_4_editingFinished();

    void on_skillBox_5_editingFinished();

    void on_skillBox_6_editingFinished();

    void on_skillBox_7_editingFinished();

    void on_skillBox_8_editingFinished();

    void on_skillBox_9_editingFinished();

    void on_consularCheckBox_clicked();

    void on_smugglerCheckBox_clicked();

    void on_knightCheckBox_clicked();

    void on_check2pcBox_toggled(bool checked);

    void on_check4pcBox_toggled(bool checked);

    void on_calcWeightButton_clicked();

    void on_calcHPSButton_clicked();

    void on_computeAlacrityButton_clicked();

    void on_upgradeButton_clicked();

    void on_OHmaxBox_editingFinished();

    void on_OHminBox_editingFinished();

    void on_note1_clicked();

    void on_saveStats_clicked();

    void on_loadStats_clicked();

    void on_tree1_clicked();

    void on_tree2_clicked();

    void on_tree3_clicked();

    void on_note2_clicked();

    void on_sustainedButton_clicked();

    void on_burstButton_clicked();

private:
    Ui::Scoundrel *ui;
    void setStats();
    vector <double> calculateStats(vector <double> &stats2);
    void updateStatBoxes();
    double sawbonesRotation(int numCasts, vector <double> &stats);
    double sawbonesRotation(double rotationTime, vector <double> &stats);
    double sawbonesBurst(double rotationTime, vector <double> &stats);
    void getWeights();
    void compareUpgrades();
    void Load_Stats();
    double scrapperRotation();
    double dirtyRotation();
};

#endif // SCOUNDREL_H
